﻿#region Usings

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using System.IO;
using System.Runtime.Serialization;
using xConnected.Common;

#endregion

namespace xConnected.Core.Model
{
    [Serializable]
    [DataContract]
    [DisplayColumn("Title")]
    public class ExpertProfile : PersistentEntity
    {
        public ExpertProfile()
        {
            CategorySkills = new List<CategorySkill>();
            EducationSkills = new List<EducationSkill>();
            LanguageSkills = new List<LanguageSkill>();
            TechnologySkills = new List<TechnologySkill>();
        }

        [DataMember]
        public bool IsDefault { get; set; }

        [DataMember]
        public bool IsAuthenticated { get; set; }

        [DataMember]
        public string Title { get; set; }

        [DataMember]
        public string Description { get; set; }

        [DataMember]
        public string Website { get; set; }

        [DataMember]
        public string Skype { get; set; }

        [DataMember]
        public string Facebook { get; set; }

        [DataMember]
        public string Twitter { get; set; }

        [DataMember]
        public string Linkedin { get; set; }

        [DataMember]
        public double HourRate { get; set; }

        [DataMember]
        public double DailyRate { get; set; }

        [DataMember]
        public double MonthlyRate { get; set; }

        [DataMember]
        public double AnnualRate { get; set; }

        [DataMember]
        public string CommentRate { get; set; }

        [DataMember]
        public short JobType { get; set; }

        [DataMember]
        public string EmploymentTypeText { get; set; }

        [DataMember]
        public string Experience { get; set; }

        [DataMember]
        public string References { get; set; }

        [DataMember]
        public string Other { get; set; }

        [DataMember]
        public short AvailabilityStatus { get; set; }

        [DataMember]
        public string AvailabilityStatusText { get; set; }

        [DataMember]
        public string Availability { get; set; }

        [DataMember]
        public string Photo { get; set; }

        [DataMember]
        public string Cv { get; set; }

        [DataMember]
        public string Location { get; set; }

        [DataMember]
        public double XLocation { get; set; }

        [DataMember]
        public double YLocation { get; set; }

        [DataMember]
        public string Email { get; set; }

        [DataMember]
        public string PhoneNumber { get; set; }

        [DataMember]
        public int? UserId { get; set; }

        [DataMember]
        public virtual User User { get; set; }

        [DataMember]
        public int? IndustryId { get; set; }

        [DataMember]
        public virtual Industry Industry { get; set; }

        [DataMember]
        public virtual int CountryId { get; set; }

        [DataMember]
        public virtual Country Country { get; set; }

        [DataMember]
        public virtual IList<CategorySkill> CategorySkills { get; set; }

        [DataMember]
        public virtual IList<TechnologySkill> TechnologySkills { get; set; }

        [DataMember]
        public virtual IList<EducationSkill> EducationSkills { get; set; }

        [DataMember]
        public virtual IList<LanguageSkill> LanguageSkills { get; set; }

        [DataMember]
        public virtual IList<MessageExpertUser> MessageUsers { get; set; }

        [DataMember]
        public virtual IList<ExpertList> ExpertLists { get; set; }
    }
}